package com.witmore.neutron.ai.db.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * <p>
 * neutron agent大模型配置表
 * </p>
 *
 * @author 豆子高
 * @since 2025-05-21
 */
@Getter
@Setter
@TableName("neutron_model_config")
public class ModelConfigDO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 聊天模型类别 OpenAI;  Azure;  Others
     */
    @TableField("chat_client_type")
    private String chatClientType;

    /**
     * 模型厂商
     */
    @TableField("model_manufacturer")
    private String modelManufacturer;

    /**
     * 模型名称
     */
    @TableField("model_name")
    private String modelName;

    /**
     * 模型版本
     */
    @TableField("model_version")
    private String modelVersion;

    /**
     * 模型apiKey
     */
    @TableField("model_apiKey")
    private String modelApikey;

    /**
     * 模型apiId
     */
    @TableField("model_apiId")
    private String modelApiid;

    /**
     * 模型url
     */
    @TableField("model_endPoint")
    private String modelEndpoint;

    @TableField("completions_path")
    private String completionsPath;

    /**
     * 是否启用（0未启用 1启用）
     */
    @TableField("enabled")
    private Boolean enabled;


    /**
     * 模型支持的功能配置(JSON格式存储)
     * {"image_recognition":false,"image_format":"jpeg/jpg、png","plugin_support":true,"file_upload":true,"file_format":"doc/docx/xls/xlsx/pdf/ppt/pptx/txt"}
     * # image_recognition 图片识别
     * # image_format 支持格式
     * # plugin_support 插件支持
     * # file_upload 附件上传  支持格式：
     * # file_format 支持格式
     */
    @TableField("supported_capability")
    private String supportedCapability;

    @TableField("model_type")
    private String modelType;

    /**
     * 每次对话消耗的会话次数（默认为1）
     */
    @TableField("session_cost_count")
    private Integer sessionCostCount;
}
